package sailhero

import (
	"encoding/json"
	"errors"
	"fmt"
	"github.com/wsw188440873/ctrl-cali/model"
	"iot-base/common/notify"
)

func sendCmd(action string, data any) ([]byte, error) {
	// 发送命令
	b, _ := json.Marshal(data)
	result, err := notify.EdgeReportData(true, action, b)
	if err != nil {
		return nil, err
	}
	if result.Code == 0 {
		return result.Result, nil
	} else {
		return nil, errors.New(result.Msg)
	}
}

func sendCloudAddTaskLog(params model.TaskLog) {
	go func() {
		_, err := sendCmd("AddTaskLog", params)
		fmt.Println("sendCloudAddTaskLog", err)
		// todo 失败需要加入到重新同步队列
	}()
}

func sendCloudModifyTaskLog(params model.TaskLog) {
	go func() {
		_, err := sendCmd("ModifyTaskLog", params)
		fmt.Println("sendCloudAddTaskLog", err)
		// todo 失败需要加入到重新同步队列
	}()
}

func sendCloudAddTaskLogDetails(params model.TaskLogDetails) {
	go func() {
		_, err := sendCmd("AddTaskLogDetails", params)
		fmt.Println("sendCloudAddTaskLogDetails", err)
		// todo 失败需要加入到重新同步队列
	}()
}

func sendCloudModifyTaskLogDetails(params model.TaskLogDetails) {
	go func() {
		_, err := sendCmd("ModifyTaskLogDetails", params)
		fmt.Println("sendCloudModifyTaskLogDetails", err)
		// todo 失败需要加入到重新同步队列
	}()
}
